package com.edaoe.util;

import java.util.Iterator;

public class CollectionUtil {

    /**
     * 以 separator 为分隔符将集合转换为字符串
     *
     * @param <T>       集合元素类型
     * @param iterable  {@link Iterable}
     * @param separator 分隔符
     * @return 连接后的字符串
     */
    public static <T> String join(Iterable<T> iterable, CharSequence separator) {
        if (null == iterable) {
            return null;
        }
        return join(iterable.iterator(), separator);
    }

    /**
     * 以 separator 为分隔符将集合转换为字符串
     *
     * @param <T>       集合元素类型
     * @param iterator  集合
     * @param separator 分隔符
     * @return 连接后的字符串
     */
    public static <T> String join(Iterator<T> iterator, CharSequence separator) {
        if (null == iterator) {
            return null;
        }
        final StringBuilder sb = new StringBuilder();
        boolean isFirst = true;
        while (iterator.hasNext()) {
            if (isFirst) {
                isFirst = false;
            } else {
                sb.append(separator);
            }
            sb.append(iterator.next());
        }
        return sb.toString();
    }

}
